home *** CD-ROM | disk | FTP | other *** search
Emacs Compiled Lisp | 1998-10-28 | 9.6 KB |
open in:
MacOS 8.1
|
Win98
|
DOS
view JSON data
|
view as text
This file was processed as: Emacs Compiled Lisp
(other/emacsCompiledLisp).
This format is not currently supported by dexvert.
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 3b 45 4c 43 13 00 00 00 | 0a 3b 3b 3b 20 63 6f 6d |;ELC....|.;;; com|
|00000010| 70 69 6c 65 64 20 62 79 | 20 65 72 69 6b 40 6e 61 |piled by| erik@na|
|00000020| 67 67 75 6d 2e 6e 6f 20 | 6f 6e 20 53 75 6e 20 4a |ggum.no |on Sun J|
|00000030| 61 6e 20 31 34 20 30 36 | 3a 31 37 3a 31 37 20 31 |an 14 06|:17:17 1|
|00000040| 39 39 36 0a 3b 3b 3b 20 | 66 72 6f 6d 20 66 69 6c |996.;;; |from fil|
|00000050| 65 20 2f 67 64 2f 67 6e | 75 2f 65 6d 61 63 73 2f |e /gd/gn|u/emacs/|
|00000060| 31 39 2e 30 2f 6c 69 73 | 70 2f 6d 70 75 7a 2e 65 |19.0/lis|p/mpuz.e|
|00000070| 6c 0a 3b 3b 3b 20 65 6d | 61 63 73 20 76 65 72 73 |l.;;; em|acs vers|
|00000080| 69 6f 6e 20 31 39 2e 33 | 30 2e 37 30 2e 36 2e 0a |ion 19.3|0.70.6..|
|00000090| 3b 3b 3b 20 62 79 74 65 | 63 6f 6d 70 20 76 65 72 |;;; byte|comp ver|
|000000a0| 73 69 6f 6e 20 46 53 46 | 20 32 2e 31 30 0a 3b 3b |sion FSF| 2.10.;;|
|000000b0| 3b 20 6f 70 74 69 6d 69 | 7a 61 74 69 6f 6e 20 69 |; optimi|zation i|
|000000c0| 73 20 6f 6e 2e 0a 3b 3b | 3b 20 74 68 69 73 20 66 |s on..;;|; this f|
|000000d0| 69 6c 65 20 75 73 65 73 | 20 6f 70 63 6f 64 65 73 |ile uses| opcodes|
|000000e0| 20 77 68 69 63 68 20 64 | 6f 20 6e 6f 74 20 65 78 | which d|o not ex|
|000000f0| 69 73 74 20 69 6e 20 45 | 6d 61 63 73 20 31 38 2e |ist in E|macs 18.|
|00000100| 0a 0a 28 69 66 20 28 61 | 6e 64 20 28 62 6f 75 6e |..(if (a|nd (boun|
|00000110| 64 70 20 27 65 6d 61 63 | 73 2d 76 65 72 73 69 6f |dp 'emac|s-versio|
|00000120| 6e 29 0a 09 20 28 6f 72 | 20 28 61 6e 64 20 28 62 |n).. (or| (and (b|
|00000130| 6f 75 6e 64 70 20 27 65 | 70 6f 63 68 3a 3a 76 65 |oundp 'e|poch::ve|
|00000140| 72 73 69 6f 6e 29 20 65 | 70 6f 63 68 3a 3a 76 65 |rsion) e|poch::ve|
|00000150| 72 73 69 6f 6e 29 0a 09 | 20 20 20 20 20 28 73 74 |rsion)..| (st|
|00000160| 72 69 6e 67 2d 6c 65 73 | 73 70 20 65 6d 61 63 73 |ring-les|sp emacs|
|00000170| 2d 76 65 72 73 69 6f 6e | 20 22 31 39 2e 32 39 22 |-version| "19.29"|
|00000180| 29 29 29 0a 20 20 20 20 | 28 65 72 72 6f 72 20 22 |))). |(error "|
|00000190| 60 6d 70 75 7a 2e 65 6c | 27 20 77 61 73 20 63 6f |`mpuz.el|' was co|
|000001a0| 6d 70 69 6c 65 64 20 66 | 6f 72 20 45 6d 61 63 73 |mpiled f|or Emacs|
|000001b0| 20 31 39 2e 32 39 20 6f | 72 20 6c 61 74 65 72 22 | 19.29 o|r later"|
|000001c0| 29 29 0a 0a 0a 28 72 61 | 6e 64 6f 6d 20 74 29 0a |))...(ra|ndom t).|
|000001d0| 23 40 35 31 20 2a 53 65 | 74 20 74 68 69 73 20 74 |#@51 *Se|t this t|
|000001e0| 6f 20 54 20 69 66 20 79 | 6f 75 20 64 6f 6e 27 74 |o T if y|ou don't|
|000001f0| 20 77 61 6e 74 20 64 69 | 6e 67 73 20 6f 6e 20 69 | want di|ngs on i|
|00000200| 6e 70 75 74 73 2e 1f 0a | 28 64 65 66 76 61 72 20 |nputs...|(defvar |
|00000210| 6d 70 75 7a 2d 73 69 6c | 65 6e 74 20 6e 69 6c 20 |mpuz-sil|ent nil |
|00000220| 28 23 24 20 2e 20 2d 34 | 36 39 29 29 0a 23 40 35 |(#$ . -4|69)).#@5|
|00000230| 37 20 44 69 6e 67 73 2c | 20 75 6e 6c 65 73 73 20 |7 Dings,| unless |
|00000240| 67 6c 6f 62 61 6c 20 76 | 61 72 69 61 62 6c 65 20 |global v|ariable |
|00000250| 60 6d 70 75 7a 2d 73 69 | 6c 65 6e 74 27 20 66 6f |`mpuz-si|lent' fo|
|00000260| 72 62 69 64 73 20 69 74 | 2e 1f 0a 28 64 65 66 61 |rbids it|...(defa|
|00000270| 6c 69 61 73 20 27 6d 70 | 75 7a 2d 64 69 6e 67 20 |lias 'mp|uz-ding |
|00000280| 23 5b 6e 69 6c 20 22 08 | 86 07 00 c1 c2 21 87 22 |#[nil ".|.....!."|
|00000290| 20 5b 6d 70 75 7a 2d 73 | 69 6c 65 6e 74 20 64 69 | [mpuz-s|ilent di|
|000002a0| 6e 67 20 74 5d 20 32 20 | 28 23 24 20 2e 20 35 36 |ng t] 2 |(#$ . 56|
|000002b0| 32 29 5d 29 0a 28 62 79 | 74 65 2d 63 6f 64 65 20 |2)]).(by|te-code |
|000002c0| 22 c0 c1 21 84 08 00 c2 | 11 c1 0b 42 13 c2 87 22 |"..!....|...B..."|
|000002d0| 20 5b 62 6f 75 6e 64 70 | 20 6d 70 75 7a 2d 6d 6f | [boundp| mpuz-mo|
|000002e0| 64 65 2d 68 6f 6f 6b 20 | 6e 69 6c 20 63 75 72 72 |de-hook |nil curr|
|000002f0| 65 6e 74 2d 6c 6f 61 64 | 2d 6c 69 73 74 5d 20 32 |ent-load|-list] 2|
|00000300| 29 0a 23 40 33 37 20 4c | 6f 63 61 6c 20 6b 65 79 |).#@37 L|ocal key|
|00000310| 6d 61 70 20 74 6f 20 75 | 73 65 20 69 6e 20 4d 75 |map to u|se in Mu|
|00000320| 6c 74 20 50 75 7a 7a 6c | 65 2e 1f 0a 28 64 65 66 |lt Puzzl|e...(def|
|00000330| 76 61 72 20 6d 70 75 7a | 2d 6d 6f 64 65 2d 6d 61 |var mpuz|-mode-ma|
|00000340| 70 20 6e 69 6c 20 28 23 | 24 20 2e 20 37 37 35 29 |p nil (#|$ . 775)|
|00000350| 29 0a 28 62 79 74 65 2d | 63 6f 64 65 20 22 08 84 |).(byte-|code "..|
|00000360| 8b 00 c1 20 10 c2 08 c3 | c4 23 88 c2 08 c5 c4 23 |... ....|.#.....#|
|00000370| 88 c2 08 c6 c4 23 88 c2 | 08 c7 c4 23 88 c2 08 c8 |.....#..|...#....|
|00000380| c4 23 88 c2 08 c9 c4 23 | 88 c2 08 ca c4 23 88 c2 |.#.....#|.....#..|
|00000390| 08 cb c4 23 88 c2 08 cc | c4 23 88 c2 08 cd c4 23 |...#....|.#.....#|
|000003a0| 88 c2 08 ce c4 23 88 c2 | 08 cf c4 23 88 c2 08 d0 |.....#..|...#....|
|000003b0| c4 23 88 c2 08 d1 c4 23 | 88 c2 08 d2 c4 23 88 c2 |.#.....#|.....#..|
|000003c0| 08 d3 c4 23 88 c2 08 d4 | c4 23 88 c2 08 d5 c4 23 |...#....|.#.....#|
|000003d0| 88 c2 08 d6 c4 23 88 c2 | 08 d7 c4 23 88 c2 08 d8 |.....#..|...#....|
|000003e0| d9 23 88 c2 08 da db 23 | 88 c1 87 22 20 5b 6d 70 |.#.....#|..." [mp|
|000003f0| 75 7a 2d 6d 6f 64 65 2d | 6d 61 70 20 6d 61 6b 65 |uz-mode-|map make|
|00000400| 2d 73 70 61 72 73 65 2d | 6b 65 79 6d 61 70 20 64 |-sparse-|keymap d|
|00000410| 65 66 69 6e 65 2d 6b 65 | 79 20 22 61 22 20 6d 70 |efine-ke|y "a" mp|
|00000420| 75 7a 2d 74 72 79 2d 6c | 65 74 74 65 72 20 22 62 |uz-try-l|etter "b|
|00000430| 22 20 22 63 22 20 22 64 | 22 20 22 65 22 20 22 66 |" "c" "d|" "e" "f|
|00000440| 22 20 22 67 22 20 22 68 | 22 20 22 69 22 20 22 6a |" "g" "h|" "i" "j|
|00000450| 22 20 22 41 22 20 22 42 | 22 20 22 43 22 20 22 44 |" "A" "B|" "C" "D|
|00000460| 22 20 22 45 22 20 22 46 | 22 20 22 47 22 20 22 48 |" "E" "F|" "G" "H|
|00000470| 22 20 22 49 22 20 22 4a | 22 20 22 07 22 20 6d 70 |" "I" "J|" "." mp|
|00000480| 75 7a 2d 6f 66 66 65 72 | 2d 61 62 6f 72 74 20 22 |uz-offer|-abort "|
|00000490| 3f 22 20 64 65 73 63 72 | 69 62 65 2d 6d 6f 64 65 |?" descr|ibe-mode|
|000004a0| 5d 20 34 29 0a 23 40 34 | 35 34 20 4d 75 6c 74 69 |] 4).#@4|54 Multi|
|000004b0| 70 6c 69 63 61 74 69 6f | 6e 20 70 75 7a 7a 6c 65 |plicatio|n puzzle|
|000004c0| 20 6d 6f 64 65 2e 0a 0a | 59 6f 75 20 68 61 76 65 | mode...|You have|
|000004d0| 20 74 6f 20 67 75 65 73 | 73 20 77 68 69 63 68 20 | to gues|s which |
|000004e0| 6c 65 74 74 65 72 73 20 | 73 74 61 6e 64 20 66 6f |letters |stand fo|
|000004f0| 72 20 77 68 69 63 68 20 | 64 69 67 69 74 73 20 69 |r which |digits i|
|00000500| 6e 20 74 68 65 0a 6d 75 | 6c 74 69 70 6c 69 63 61 |n the.mu|ltiplica|
|00000510| 74 69 6f 6e 20 64 69 73 | 70 6c 61 79 65 64 20 69 |tion dis|played i|
|00000520| 6e 73 69 64 65 20 74 68 | 65 20 60 2a 4d 75 6c 74 |nside th|e `*Mult|
|00000530| 20 50 75 7a 7a 6c 65 2a | 27 20 62 75 66 66 65 72 | Puzzle*|' buffer|
|00000540| 2e 0a 0a 59 6f 75 20 6d | 61 79 20 65 6e 74 65 72 |...You m|ay enter|
|00000550| 20 61 20 67 75 65 73 73 | 20 66 6f 72 20 61 20 6c | a guess| for a l|
|00000560| 65 74 74 65 72 27 73 20 | 76 61 6c 75 65 20 62 79 |etter's |value by|
|00000570| 20 74 79 70 69 6e 67 20 | 66 69 72 73 74 20 74 68 | typing |first th|
|00000580| 65 20 6c 65 74 74 65 72 | 2c 0a 74 68 65 6e 20 74 |e letter|,.then t|
|00000590| 68 65 20 64 69 67 69 74 | 2e 20 20 54 68 75 73 2c |he digit|. Thus,|
|000005a0| 20 74 6f 20 67 75 65 73 | 73 20 74 68 61 74 20 41 | to gues|s that A|
|000005b0| 3d 33 2c 20 74 79 70 65 | 20 41 20 33 2e 0a 0a 54 |=3, type| A 3...T|
|000005c0| 6f 20 6c 65 61 76 65 20 | 74 68 65 20 67 61 6d 65 |o leave |the game|
|000005d0| 20 74 6f 20 64 6f 20 6f | 74 68 65 72 20 65 64 69 | to do o|ther edi|
|000005e0| 74 69 6e 67 20 77 6f 72 | 6b 2c 20 6a 75 73 74 20 |ting wor|k, just |
|000005f0| 73 77 69 74 63 68 20 62 | 75 66 66 65 72 73 2e 0a |switch b|uffers..|
|00000600| 54 68 65 6e 20 79 6f 75 | 20 6d 61 79 20 72 65 73 |Then you| may res|
|00000610| 75 6d 65 20 74 68 65 20 | 67 61 6d 65 20 77 69 74 |ume the |game wit|
|00000620| 68 20 4d 2d 78 20 6d 70 | 75 7a 2e 0a 59 6f 75 20 |h M-x mp|uz..You |
|00000630| 6d 61 79 20 61 62 6f 72 | 74 20 61 20 67 61 6d 65 |may abor|t a game|
|00000640| 20 62 79 20 74 79 70 69 | 6e 67 20 5c 3c 6d 70 75 | by typi|ng \<mpu|
|00000650| 7a 2d 6d 6f 64 65 2d 6d | 61 70 3e 5c 5b 6d 70 75 |z-mode-m|ap>\[mpu|
|00000660| 7a 2d 6f 66 66 65 72 2d | 61 62 6f 72 74 5d 2e 1f |z-offer-|abort]..|
|00000670| 0a 28 64 65 66 61 6c 69 | 61 73 20 27 6d 70 75 7a |.(defali|as 'mpuz|
|00000680| 2d 6d 6f 64 65 20 23 5b | 6e 69 6c 20 22 c0 11 c2 |-mode #[|nil "...|
|00000690| 13 c4 0d 21 88 c6 c7 21 | 87 22 20 5b 6d 70 75 7a |...!...!|." [mpuz|
|000006a0| 2d 6d 6f 64 65 20 6d 61 | 6a 6f 72 2d 6d 6f 64 65 |-mode ma|jor-mode|
|000006b0| 20 22 4d 75 6c 74 20 50 | 75 7a 7a 6c 65 22 20 6d | "Mult P|uzzle" m|
|000006c0| 6f 64 65 2d 6e 61 6d 65 | 20 75 73 65 2d 6c 6f 63 |ode-name| use-loc|
|000006d0| 61 6c 2d 6d 61 70 20 6d | 70 75 7a 2d 6d 6f 64 65 |al-map m|puz-mode|
|000006e0| 2d 6d 61 70 20 72 75 6e | 2d 68 6f 6f 6b 73 20 6d |-map run|-hooks m|
|000006f0| 70 75 7a 2d 6d 6f 64 65 | 2d 68 6f 6f 6b 5d 20 32 |puz-mode|-hook] 2|
|00000700| 20 28 23 24 20 2e 20 31 | 31 39 35 29 20 6e 69 6c | (#$ . 1|195) nil|
|00000710| 5d 29 0a 23 40 34 30 20 | 4e 75 6d 62 65 72 20 6f |]).#@40 |Number o|
|00000720| 66 20 65 72 72 6f 72 73 | 20 6d 61 64 65 20 69 6e |f errors| made in|
|00000730| 20 63 75 72 72 65 6e 74 | 20 67 61 6d 65 2e 1f 0a | current| game...|
|00000740| 28 64 65 66 76 61 72 20 | 6d 70 75 7a 2d 6e 62 2d |(defvar |mpuz-nb-|
|00000750| 65 72 72 6f 72 73 20 30 | 20 28 23 24 20 2e 20 31 |errors 0| (#$ . 1|
|00000760| 38 31 36 29 29 0a 23 40 | 32 38 20 4e 75 6d 62 65 |816)).#@|28 Numbe|
|00000770| 72 20 6f 66 20 67 61 6d | 65 73 20 63 6f 6d 70 6c |r of gam|es compl|
|00000780| 65 74 65 64 2e 1f 0a 28 | 64 65 66 76 61 72 20 6d |eted...(|defvar m|
|00000790| 70 75 7a 2d 6e 62 2d 63 | 6f 6d 70 6c 65 74 65 64 |puz-nb-c|ompleted|
|000007a0| 2d 67 61 6d 65 73 20 30 | 20 28 23 24 20 2e 20 31 |-games 0| (#$ . 1|
|000007b0| 38 39 39 29 29 0a 23 40 | 34 32 20 4e 75 6d 62 65 |899)).#@|42 Numbe|
|000007c0| 72 20 6f 66 20 65 72 72 | 6f 72 73 20 6d 61 64 65 |r of err|ors made|
|000007d0| 20 69 6e 20 70 72 65 76 | 69 6f 75 73 20 67 61 6d | in prev|ious gam|
|000007e0| 65 73 2e 1f 0a 28 64 65 | 66 76 61 72 20 6d 70 75 |es...(de|fvar mpu|
|000007f0| 7a 2d 6e 62 2d 63 75 6d | 75 6c 61 74 65 64 2d 65 |z-nb-cum|ulated-e|
|00000800| 72 72 6f 72 73 20 30 20 | 28 23 24 20 2e 20 31 39 |rrors 0 |(#$ . 19|
|00000810| 37 39 29 29 0a 23 40 34 | 32 20 54 72 75 65 20 69 |79)).#@4|2 True i|
|00000820| 66 20 61 20 67 61 6d 65 | 20 69 73 20 63 75 72 72 |f a game| is curr|
|00000830| 65 6e 74 6c 79 20 69 6e | 20 70 72 6f 67 72 65 73 |ently in| progres|
|00000840| 73 2e 1f 0a 28 64 65 66 | 76 61 72 20 6d 70 75 7a |s...(def|var mpuz|
|00000850| 2d 69 6e 2d 70 72 6f 67 | 72 65 73 73 20 6e 69 6c |-in-prog|ress nil|
|00000860| 20 28 23 24 20 2e 20 32 | 30 37 34 29 29 0a 23 40 | (#$ . 2|074)).#@|
|00000870| 35 34 20 41 20 76 65 63 | 74 6f 72 20 72 65 63 6f |54 A vec|tor reco|
|00000880| 72 64 69 6e 67 20 77 68 | 69 63 68 20 64 69 67 69 |rding wh|ich digi|
|00000890| 74 73 20 68 61 76 65 20 | 62 65 65 6e 20 64 65 63 |ts have |been dec|
|000008a0| 72 79 70 74 65 64 2e 1f | 0a 28 64 65 66 76 61 72 |rypted..|.(defvar|
|000008b0| 20 6d 70 75 7a 2d 66 6f | 75 6e 64 2d 64 69 67 69 | mpuz-fo|und-digi|
|000008c0| 74 73 20 28 6d 61 6b 65 | 2d 76 65 63 74 6f 72 20 |ts (make|-vector |
|000008d0| 31 30 20 6e 69 6c 29 20 | 28 23 24 20 2e 20 32 31 |10 nil) |(#$ . 21|
|000008e0| 36 33 29 29 0a 28 64 65 | 66 61 6c 69 61 73 20 27 |63)).(de|falias '|
|000008f0| 6d 70 75 7a 2d 64 69 67 | 69 74 2d 73 6f 6c 76 65 |mpuz-dig|it-solve|
|00000900| 64 2d 70 20 27 28 6d 61 | 63 72 6f 20 2e 20 23 5b |d-p '(ma|cro . #[|
|00000910| 28 64 69 67 69 74 29 20 | 22 c0 c1 5c 6e 45 87 22 |(digit) |"..\nE."|
|00000920| 20 5b 61 72 65 66 20 6d | 70 75 7a 2d 66 6f 75 6e | [aref m|puz-foun|
|00000930| 64 2d 64 69 67 69 74 73 | 20 64 69 67 69 74 5d 20 |d-digits| digit] |
|00000940| 33 5d 29 29 0a 23 40 33 | 38 20 41 20 70 65 72 6d |3])).#@3|8 A perm|
|00000950| 75 74 61 74 69 6f 6e 20 | 66 72 6f 6d 20 5b 30 2e |utation |from [0.|
|00000960| 2e 39 5d 20 74 6f 20 5b | 30 2e 2e 39 5d 2e 1f 0a |.9] to [|0..9]...|
|00000970| 28 64 65 66 76 61 72 20 | 6d 70 75 7a 2d 64 69 67 |(defvar |mpuz-dig|
|00000980| 69 74 2d 74 6f 2d 6c 65 | 74 74 65 72 20 28 6d 61 |it-to-le|tter (ma|
|00000990| 6b 65 2d 76 65 63 74 6f | 72 20 31 30 20 30 29 20 |ke-vecto|r 10 0) |
|000009a0| 28 23 24 20 2e 20 32 33 | 37 38 29 29 0a 23 40 33 |(#$ . 23|78)).#@3|
|000009b0| 38 20 54 68 65 20 69 6e | 76 65 72 73 65 20 6f 66 |8 The in|verse of|
|000009c0| 20 6d 70 75 7a 2d 64 69 | 67 69 74 2d 74 6f 2d 6c | mpuz-di|git-to-l|
|000009d0| 65 74 74 65 72 2e 1f 0a | 28 64 65 66 76 61 72 20 |etter...|(defvar |
|000009e0| 6d 70 75 7a 2d 6c 65 74 | 74 65 72 2d 74 6f 2d 64 |mpuz-let|ter-to-d|
|000009f0| 69 67 69 74 20 28 6d 61 | 6b 65 2d 76 65 63 74 6f |igit (ma|ke-vecto|
|00000a00| 72 20 31 30 20 30 29 20 | 28 23 24 20 2e 20 32 34 |r 10 0) |(#$ . 24|
|00000a10| 38 32 29 29 0a 28 64 65 | 66 61 6c 69 61 73 20 27 |82)).(de|falias '|
|00000a20| 6d 70 75 7a 2d 74 6f 2d | 64 69 67 69 74 20 27 28 |mpuz-to-|digit '(|
|00000a30| 6d 61 63 72 6f 20 2e 20 | 23 5b 28 6c 65 74 74 65 |macro . |#[(lette|
|00000a40| 72 29 20 22 c0 c1 5c 6e | 45 87 22 20 5b 61 72 65 |r) "..\n|E." [are|
|00000a50| 66 20 6d 70 75 7a 2d 6c | 65 74 74 65 72 2d 74 6f |f mpuz-l|etter-to|
|00000a60| 2d 64 69 67 69 74 20 6c | 65 74 74 65 72 5d 20 33 |-digit l|etter] 3|
|00000a70| 5d 29 29 0a 28 64 65 66 | 61 6c 69 61 73 20 27 6d |])).(def|alias 'm|
|00000a80| 70 75 7a 2d 74 6f 2d 6c | 65 74 74 65 72 20 27 28 |puz-to-l|etter '(|
|00000a90| 6d 61 63 72 6f 20 2e 20 | 23 5b 28 64 69 67 69 74 |macro . |#[(digit|
|00000aa0| 29 20 22 c0 c1 5c 6e 45 | 87 22 20 5b 61 72 65 66 |) "..\nE|." [aref|
|00000ab0| 20 6d 70 75 7a 2d 64 69 | 67 69 74 2d 74 6f 2d 6c | mpuz-di|git-to-l|
|00000ac0| 65 74 74 65 72 20 64 69 | 67 69 74 5d 20 33 5d 29 |etter di|git] 3])|
|00000ad0| 29 0a 23 40 35 33 20 49 | 6e 69 74 69 61 6c 69 7a |).#@53 I|nitializ|
|00000ae0| 65 20 70 75 7a 7a 6c 65 | 20 63 6f 64 69 6e 67 20 |e puzzle| coding |
|00000af0| 77 69 74 68 20 61 20 72 | 61 6e 64 6f 6d 20 70 65 |with a r|andom pe|
|00000b00| 72 6d 75 74 61 74 69 6f | 6e 2e 1f 0a 28 64 65 66 |rmutatio|n...(def|
|00000b10| 61 6c 69 61 73 20 27 6d | 70 75 7a 2d 62 75 69 6c |alias 'm|puz-buil|
|00000b20| 64 2d 72 61 6e 64 6f 6d | 2d 70 65 72 6d 20 23 5b |d-random|-perm #[|
|00000b30| 6e 69 6c 20 22 c0 c1 c2 | c3 c4 c5 c6 c7 c8 c9 af |nil "...|........|
|00000b40| 5c 6e ca cb 1e 5c 66 1e | 0d 1e 0e 0e 0e 85 42 00 |\n...\f.|......B.|
|00000b50| cf 0e 0d 21 0e 0e 38 16 | 5c 66 d0 0e 5c 66 0e 0e |...!..8.|\f..\f..|
|00000b60| 5c 22 16 0e 0e 0d 53 16 | 0d 0e 11 0e 0d 0e 5c 66 |\"....S.|......\f|
|00000b70| 49 88 0e 12 0e 5c 66 0e | 0d 49 88 82 14 00 2b 87 |I....\f.|.I....+.|
|00000b80| 22 20 5b 30 20 31 20 32 | 20 33 20 34 20 35 20 36 |" [0 1 2| 3 4 5 6|
|00000b90| 20 37 20 38 20 39 20 31 | 30 20 6e 69 6c 20 65 6c | 7 8 9 1|0 nil el|
|00000ba0| 65 6d 20 69 6e 64 65 78 | 20 6c 65 74 74 65 72 73 |em index| letters|
|00000bb0| 20 72 61 6e 64 6f 6d 20 | 64 65 6c 71 20 6d 70 75 | random |delq mpu|
|00000bc0| 7a 2d 64 69 67 69 74 2d | 74 6f 2d 6c 65 74 74 65 |z-digit-|to-lette|
|00000bd0| 72 20 6d 70 75 7a 2d 6c | 65 74 74 65 72 2d 74 6f |r mpuz-l|etter-to|
|00000be0| 2d 64 69 67 69 74 5d 20 | 31 30 20 28 23 24 20 2e |-digit] |10 (#$ .|
|00000bf0| 20 32 37 37 35 29 5d 29 | 0a 23 40 37 33 20 54 68 | 2775)])|.#@73 Th|
|00000c00| 65 20 62 6f 61 72 64 20 | 61 73 73 6f 63 69 61 74 |e board |associat|
|00000c10| 65 73 20 74 6f 20 61 6e | 79 20 64 69 67 69 74 20 |es to an|y digit |
|00000c20| 74 68 65 20 6c 69 73 74 | 20 6f 66 20 73 71 75 61 |the list| of squa|
|00000c30| 72 65 73 20 77 68 65 72 | 65 20 69 74 20 61 70 70 |res wher|e it app|
|00000c40| 65 61 72 73 2e 1f 0a 28 | 64 65 66 76 61 72 20 6d |ears...(|defvar m|
|00000c50| 70 75 7a 2d 62 6f 61 72 | 64 20 28 6d 61 6b 65 2d |puz-boar|d (make-|
|00000c60| 76 65 63 74 6f 72 20 31 | 30 20 6e 69 6c 29 20 28 |vector 1|0 nil) (|
|00000c70| 23 24 20 2e 20 33 30 37 | 30 29 29 0a 23 40 35 39 |#$ . 307|0)).#@59|
|00000c80| 20 50 75 74 20 28 6c 61 | 73 74 20 64 69 67 69 74 | Put (la|st digit|
|00000c90| 20 6f 66 29 20 4e 55 4d | 42 45 52 20 6f 6e 20 53 | of) NUM|BER on S|
|00000ca0| 51 55 41 52 45 20 6f 66 | 20 74 68 65 20 70 75 7a |QUARE of| the puz|
|00000cb0| 7a 6c 65 20 62 6f 61 72 | 64 2e 1f 0a 28 64 65 66 |zle boar|d...(def|
|00000cc0| 61 6c 69 61 73 20 27 6d | 70 75 7a 2d 70 75 74 2d |alias 'm|puz-put-|
|00000cd0| 64 69 67 69 74 2d 6f 6e | 2d 62 6f 61 72 64 20 23 |digit-on|-board #|
|00000ce0| 5b 28 6e 75 6d 62 65 72 | 20 73 71 75 61 72 65 29 |[(number| square)|
|00000cf0| 20 22 08 c1 a6 10 5c 6e | 08 0b 5c 6e 08 48 42 49 | "....\n|..\n.HBI|
|00000d00| 87 22 20 5b 6e 75 6d 62 | 65 72 20 31 30 20 6d 70 |." [numb|er 10 mp|
|00000d10| 75 7a 2d 62 6f 61 72 64 | 20 73 71 75 61 72 65 5d |uz-board| square]|
|00000d20| 20 35 20 28 23 24 20 2e | 20 33 32 30 31 29 5d 29 | 5 (#$ .| 3201)])|
|00000d30| 0a 23 40 36 31 20 43 68 | 65 63 6b 20 77 68 65 74 |.#@61 Ch|eck whet|
|00000d40| 68 65 72 20 61 6c 6c 20 | 64 69 67 69 74 73 20 68 |her all |digits h|
|00000d50| 61 76 65 20 62 65 65 6e | 20 73 6f 6c 76 65 64 2e |ave been| solved.|
|00000d60| 20 52 65 74 75 72 6e 20 | 74 20 69 66 20 79 65 73 | Return |t if yes|
|00000d70| 2e 1f 0a 28 64 65 66 61 | 6c 69 61 73 20 27 6d 70 |...(defa|lias 'mp|
|00000d80| 75 7a 2d 63 68 65 63 6b | 2d 61 6c 6c 2d 73 6f 6c |uz-check|-all-sol|
|00000d90| 76 65 64 20 23 5b 6e 69 | 6c 20 22 c0 c1 8d 87 22 |ved #[ni|l "...."|
|00000da0| 20 5b 66 6f 75 6e 64 20 | 28 62 79 74 65 2d 63 6f | [found |(byte-co|
|00000db0| 64 65 20 22 c0 19 c2 09 | 54 89 11 56 83 1f 00 0b |de "....|T..V....|
|00000dc0| 09 48 84 02 00 5c 66 09 | 48 83 02 00 c5 c6 c7 5c |.H...\f.|H......\|
|00000dd0| 22 88 82 02 00 29 c8 87 | 22 20 5b 2d 31 20 64 69 |"....)..|" [-1 di|
|00000de0| 67 69 74 20 31 30 20 6d | 70 75 7a 2d 66 6f 75 6e |git 10 m|puz-foun|
|00000df0| 64 2d 64 69 67 69 74 73 | 20 6d 70 75 7a 2d 62 6f |d-digits| mpuz-bo|
|00000e00| 61 72 64 20 74 68 72 6f | 77 20 66 6f 75 6e 64 20 |ard thro|w found |
|00000e10| 6e 69 6c 20 74 5d 20 33 | 29 5d 20 32 20 28 23 24 |nil t] 3|)] 2 (#$|
|00000e20| 20 2e 20 33 33 38 32 29 | 5d 29 0a 23 40 35 30 20 | . 3382)|]).#@50 |
|00000e30| 44 72 61 77 20 72 61 6e | 64 6f 6d 20 76 61 6c 75 |Draw ran|dom valu|
|00000e40| 65 73 20 74 6f 20 62 65 | 20 6d 75 6c 74 69 70 6c |es to be| multipl|
|00000e50| 69 65 64 20 69 6e 20 61 | 20 70 75 7a 7a 6c 65 2e |ied in a| puzzle.|
|00000e60| 1f 0a 28 64 65 66 61 6c | 69 61 73 20 27 6d 70 75 |..(defal|ias 'mpu|
|00000e70| 7a 2d 72 61 6e 64 6f 6d | 2d 70 75 7a 7a 6c 65 20 |z-random|-puzzle |
|00000e80| 23 5b 6e 69 6c 20 22 c0 | 20 88 c1 5c 6e c3 5c 22 |#[nil ".| ..\n.\"|
|00000e90| 88 c3 89 89 89 89 1c 1d | 1e 06 1e 07 1e 08 c9 ca |........|........|
|00000ea0| 21 16 08 c9 cb 21 16 07 | 0e 08 0e 07 cc a6 5f 16 |!....!..|......_.|
|00000eb0| 06 0e 08 0e 07 cc a5 5f | 15 0e 08 0e 07 5f 14 0e |......._|....._..|
|00000ec0| 06 ca 57 84 15 00 0d ca | 57 84 15 00 cd 0e 08 ce |..W.....|W.......|
|00000ed0| 5c 22 88 cd 0e 08 cc a5 | cf 5c 22 88 cd 0e 08 cb |\"......|.\".....|
|00000ee0| a5 d0 5c 22 88 cd 0e 07 | d1 5c 22 88 cd 0e 07 cc |..\"....|.\".....|
|00000ef0| a5 d2 5c 22 88 cd 0e 06 | d3 5c 22 88 cd 0e 06 cc |..\"....|.\".....|
|00000f00| a5 d4 5c 22 88 cd 0e 06 | cb a5 d5 5c 22 88 cd 0e |..\"....|...\"...|
|00000f10| 06 ca a5 d6 5c 22 88 cd | 0d d7 5c 22 88 cd 0d cc |....\"..|..\"....|
|00000f20| a5 d8 5c 22 88 cd 0d cb | a5 d9 5c 22 88 cd 0d ca |..\"....|..\"....|
|00000f30| a5 da 5c 22 88 cd 5c 66 | db 5c 22 88 cd 5c 66 cc |..\"..\f|.\"..\f.|
|00000f40| a5 dc 5c 22 88 cd 5c 66 | cb a5 dd 5c 22 88 cd 5c |..\"..\f|...\"..\|
|00000f50| 66 ca a5 de 5c 22 88 cd | 5c 66 df a5 e0 5c 22 2d |f...\"..|\f...\"-|
|00000f60| 87 22 20 5b 6d 70 75 7a | 2d 62 75 69 6c 64 2d 72 |." [mpuz|-build-r|
|00000f70| 61 6e 64 6f 6d 2d 70 65 | 72 6d 20 66 69 6c 6c 61 |andom-pe|rm filla|
|00000f80| 72 72 61 79 20 6d 70 75 | 7a 2d 62 6f 61 72 64 20 |rray mpu|z-board |
|00000f90| 6e 69 6c 20 45 20 44 20 | 43 20 42 20 41 20 72 61 |nil E D |C B A ra|
|00000fa0| 6e 64 6f 6d 20 31 30 30 | 30 20 31 30 30 20 31 30 |ndom 100|0 100 10|
|00000fb0| 20 6d 70 75 7a 2d 70 75 | 74 2d 64 69 67 69 74 2d | mpuz-pu|t-digit-|
|00000fc0| 6f 6e 2d 62 6f 61 72 64 | 20 28 32 20 2e 20 39 29 |on-board| (2 . 9)|
|00000fd0| 20 28 32 20 2e 20 37 29 | 20 28 32 20 2e 20 35 29 | (2 . 7)| (2 . 5)|
|00000fe0| 20 28 34 20 2e 20 39 29 | 20 28 34 20 2e 20 37 29 | (4 . 9)| (4 . 7)|
|00000ff0| 20 28 36 20 2e 20 39 29 | 20 28 36 20 2e 20 37 29 | (6 . 9)| (6 . 7)|
|00001000| 20 28 36 20 2e 20 35 29 | 20 28 36 20 2e 20 33 29 | (6 . 5)| (6 . 3)|
|00001010| 20 28 38 20 2e 20 37 29 | 20 28 38 20 2e 20 35 29 | (8 . 7)| (8 . 5)|
|00001020| 20 28 38 20 2e 20 33 29 | 20 28 38 20 2e 20 31 29 | (8 . 3)| (8 . 1)|
|00001030| 20 28 31 30 20 2e 20 39 | 29 20 28 31 30 20 2e 20 | (10 . 9|) (10 . |
|00001040| 37 29 20 28 31 30 20 2e | 20 35 29 20 28 31 30 20 |7) (10 .| 5) (10 |
|00001050| 2e 20 33 29 20 31 30 30 | 30 30 20 28 31 30 20 2e |. 3) 100|00 (10 .|
|00001060| 20 31 29 5d 20 35 20 28 | 23 24 20 2e 20 33 36 33 | 1)] 5 (|#$ . 363|
|00001070| 32 29 5d 29 0a 23 40 35 | 36 20 54 68 65 20 67 65 |2)]).#@5|6 The ge|
|00001080| 6e 65 72 61 6c 20 70 69 | 63 74 75 72 65 20 6f 66 |neral pi|cture of|
|00001090| 20 74 68 65 20 70 75 7a | 7a 6c 65 20 73 63 72 65 | the puz|zle scre|
|000010a0| 65 6e 2c 20 61 73 20 61 | 20 73 74 72 69 6e 67 2e |en, as a| string.|
|000010b0| 1f 0a 28 64 65 66 63 6f | 6e 73 74 20 6d 70 75 7a |..(defco|nst mpuz|
|000010c0| 2d 66 72 61 6d 65 77 6f | 72 6b 20 22 5c 6e 20 20 |-framewo|rk "\n |
|000010d0| 20 20 20 2e 20 2e 20 2e | 5c 6e 20 20 20 20 20 20 | . . .|\n |
|000010e0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 4e 75 6d | | Num|
|000010f0| 62 65 72 20 6f 66 20 65 | 72 72 6f 72 73 20 28 74 |ber of e|rrors (t|
|00001100| 68 69 73 20 67 61 6d 65 | 29 3a 20 30 5c 6e 20 20 |his game|): 0\n |
|00001110| 20 20 78 20 20 2e 20 2e | 5c 6e 20 20 20 2d 2d 2d | x . .|\n ---|
|00001120| 2d 2d 2d 2d 5c 6e 20 20 | 20 2e 20 2e 20 2e 20 2e |----\n | . . . .|
|00001130| 5c 6e 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |\n | |
|00001140| 20 20 20 20 20 20 20 20 | 20 20 4e 75 6d 62 65 72 | | Number|
|00001150| 20 6f 66 20 63 6f 6d 70 | 6c 65 74 65 64 20 67 61 | of comp|leted ga|
|00001160| 6d 65 73 3a 20 30 5c 6e | 20 2e 20 2e 20 2e 20 2e |mes: 0\n| . . . .|
|00001170| 5c 6e 20 2d 2d 2d 2d 2d | 2d 2d 2d 2d 20 20 20 20 |\n -----|---- |
|00001180| 20 20 20 20 20 20 20 20 | 20 20 41 76 65 72 61 67 | | Averag|
|00001190| 65 20 6e 75 6d 62 65 72 | 20 6f 66 20 65 72 72 6f |e number| of erro|
|000011a0| 72 73 3a 20 30 2e 30 30 | 5c 6e 20 2e 20 2e 20 2e |rs: 0.00|\n . . .|
|000011b0| 20 2e 20 2e 22 20 28 23 | 24 20 2e 20 34 32 31 38 | . ." (#|$ . 4218|
|000011c0| 29 29 0a 23 40 35 32 20 | 43 72 65 61 74 65 20 28 |)).#@52 |Create (|
|000011d0| 6f 72 20 72 65 63 72 65 | 61 74 65 29 20 74 68 65 |or recre|ate) the|
|000011e0| 20 70 75 7a 7a 6c 65 20 | 62 75 66 66 65 72 2e 20 | puzzle |buffer. |
|000011f0| 52 65 74 75 72 6e 20 69 | 74 2e 1f 0a 28 64 65 66 |Return i|t...(def|
|00001200| 61 6c 69 61 73 20 27 6d | 70 75 7a 2d 63 72 65 61 |alias 'm|puz-crea|
|00001210| 74 65 2d 62 75 66 66 65 | 72 20 23 5b 6e 69 6c 20 |te-buffe|r #[nil |
|00001220| 22 c0 c1 21 1a 8a 5c 6e | 71 88 c3 1c c5 20 88 0e |"..!..\n|q.... ..|
|00001230| 06 63 88 c7 20 88 c8 20 | 88 c9 20 88 2a 5c 6e 29 |.c.. .. |.. .*\n)|
|00001240| 87 22 20 5b 67 65 74 2d | 62 75 66 66 65 72 2d 63 |." [get-|buffer-c|
|00001250| 72 65 61 74 65 20 22 2a | 4d 75 6c 74 20 50 75 7a |reate "*|Mult Puz|
|00001260| 7a 6c 65 2a 22 20 62 75 | 66 66 20 6e 69 6c 20 62 |zle*" bu|ff nil b|
|00001270| 75 66 66 65 72 2d 72 65 | 61 64 2d 6f 6e 6c 79 20 |uffer-re|ad-only |
|00001280| 65 72 61 73 65 2d 62 75 | 66 66 65 72 20 6d 70 75 |erase-bu|ffer mpu|
|00001290| 7a 2d 66 72 61 6d 65 77 | 6f 72 6b 20 6d 70 75 7a |z-framew|ork mpuz|
|000012a0| 2d 70 61 69 6e 74 2d 62 | 6f 61 72 64 20 6d 70 75 |-paint-b|oard mpu|
|000012b0| 7a 2d 70 61 69 6e 74 2d | 65 72 72 6f 72 73 20 6d |z-paint-|errors m|
|000012c0| 70 75 7a 2d 70 61 69 6e | 74 2d 73 74 61 74 69 73 |puz-pain|t-statis|
|000012d0| 74 69 63 73 5d 20 32 20 | 28 23 24 20 2e 20 34 35 |tics] 2 |(#$ . 45|
|000012e0| 35 32 29 5d 29 0a 23 40 | 34 31 20 50 61 69 6e 74 |52)]).#@|41 Paint|
|000012f0| 20 65 72 72 6f 72 20 63 | 6f 75 6e 74 20 6f 6e 20 | error c|ount on |
|00001300| 74 68 65 20 70 75 7a 7a | 6c 65 20 73 63 72 65 65 |the puzz|le scree|
|00001310| 6e 2e 1f 0a 28 64 65 66 | 61 6c 69 61 73 20 27 6d |n...(def|alias 'm|
|00001320| 70 75 7a 2d 70 61 69 6e | 74 2d 65 72 72 6f 72 73 |puz-pain|t-errors|
|00001330| 20 23 5b 6e 69 6c 20 22 | c0 20 88 c1 1a c3 c4 21 | #[nil "|. .....!|
|00001340| 88 c5 c6 21 88 c7 20 88 | c8 0e 09 21 63 29 87 22 |...!.. .|...!c)."|
|00001350| 20 5b 6d 70 75 7a 2d 73 | 77 69 74 63 68 2d 74 6f | [mpuz-s|witch-to|
|00001360| 2d 77 69 6e 64 6f 77 20 | 6e 69 6c 20 62 75 66 66 |-window |nil buff|
|00001370| 65 72 2d 72 65 61 64 2d | 6f 6e 6c 79 20 67 6f 74 |er-read-|only got|
|00001380| 6f 2d 6c 69 6e 65 20 33 | 20 6d 6f 76 65 2d 74 6f |o-line 3| move-to|
|00001390| 2d 63 6f 6c 75 6d 6e 20 | 34 39 20 6d 70 75 7a 2d |-column |49 mpuz-|
|000013a0| 64 65 6c 65 74 65 2d 6c | 69 6e 65 20 70 72 69 6e |delete-l|ine prin|
|000013b0| 31 2d 74 6f 2d 73 74 72 | 69 6e 67 20 6d 70 75 7a |1-to-str|ing mpuz|
|000013c0| 2d 6e 62 2d 65 72 72 6f | 72 73 5d 20 32 20 28 23 |-nb-erro|rs] 2 (#|
|000013d0| 24 20 2e 20 34 38 34 33 | 29 5d 29 0a 23 40 36 31 |$ . 4843|)]).#@61|
|000013e0| 20 50 61 69 6e 74 20 73 | 74 61 74 69 73 74 69 63 | Paint s|tatistic|
|000013f0| 73 20 61 62 6f 75 74 20 | 70 72 65 76 69 6f 75 73 |s about |previous|
|00001400| 20 67 61 6d 65 73 20 6f | 6e 20 74 68 65 20 70 75 | games o|n the pu|
|00001410| 7a 7a 6c 65 20 73 63 72 | 65 65 6e 2e 1f 0a 28 64 |zzle scr|een...(d|
|00001420| 65 66 61 6c 69 61 73 20 | 27 6d 70 75 7a 2d 70 61 |efalias |'mpuz-pa|
|00001430| 69 6e 74 2d 73 74 61 74 | 69 73 74 69 63 73 20 23 |int-stat|istics #|
|00001440| 5b 6e 69 6c 20 22 08 c1 | 55 83 5c 6e 00 c1 82 13 |[nil "..|U.\n....|
|00001450| 00 08 5c 6e c3 5f 5c 5c | 08 89 5c 5c a5 89 1c c5 |..\n._\\|..\\....|
|00001460| a6 1e 06 c7 1e 08 c9 ca | 21 88 cb cc 21 88 cd 20 |........|!...!.. |
|00001470| 88 ce 08 21 63 88 c9 cf | 21 88 cb d0 21 88 cd 20 |...!c...|!...!.. |
|00001480| 88 d1 d2 5c 66 c5 a5 0e | 06 d3 a5 0e 06 d3 a6 24 |...\f...|.......$|
|00001490| 63 2b 87 22 20 5b 6d 70 | 75 7a 2d 6e 62 2d 63 6f |c+." [mp|uz-nb-co|
|000014a0| 6d 70 6c 65 74 65 64 2d | 67 61 6d 65 73 20 30 20 |mpleted-|games 0 |
|000014b0| 6d 70 75 7a 2d 6e 62 2d | 63 75 6d 75 6c 61 74 65 |mpuz-nb-|cumulate|
|000014c0| 64 2d 65 72 72 6f 72 73 | 20 32 30 30 20 6d 65 61 |d-errors| 200 mea|
|000014d0| 6e 20 31 30 30 20 66 72 | 61 63 2d 70 61 72 74 20 |n 100 fr|ac-part |
|000014e0| 6e 69 6c 20 62 75 66 66 | 65 72 2d 72 65 61 64 2d |nil buff|er-read-|
|000014f0| 6f 6e 6c 79 20 67 6f 74 | 6f 2d 6c 69 6e 65 20 37 |only got|o-line 7|
|00001500| 20 6d 6f 76 65 2d 74 6f | 2d 63 6f 6c 75 6d 6e 20 | move-to|-column |
|00001510| 35 31 20 6d 70 75 7a 2d | 64 65 6c 65 74 65 2d 6c |51 mpuz-|delete-l|
|00001520| 69 6e 65 20 70 72 69 6e | 31 2d 74 6f 2d 73 74 72 |ine prin|1-to-str|
|00001530| 69 6e 67 20 39 20 35 30 | 20 66 6f 72 6d 61 74 20 |ing 9 50| format |
|00001540| 22 25 64 2e 25 64 25 64 | 22 20 31 30 5d 20 37 20 |"%d.%d%d|" 10] 7 |
|00001550| 28 23 24 20 2e 20 35 30 | 38 39 29 5d 29 0a 23 40 |(#$ . 50|89)]).#@|
|00001560| 34 35 20 50 61 69 6e 74 | 20 62 6f 61 72 64 20 73 |45 Paint| board s|
|00001570| 69 74 75 61 74 69 6f 6e | 20 6f 6e 20 74 68 65 20 |ituation| on the |
|00001580| 70 75 7a 7a 6c 65 20 73 | 63 72 65 65 6e 2e 1f 0a |puzzle s|creen...|
|00001590| 28 64 65 66 61 6c 69 61 | 73 20 27 6d 70 75 7a 2d |(defalia|s 'mpuz-|
|000015a0| 70 61 69 6e 74 2d 62 6f | 61 72 64 20 23 5b 6e 69 |paint-bo|ard #[ni|
|000015b0| 6c 20 22 c0 20 88 c1 1a | c3 5c 6e 54 89 12 56 83 |l ". ...|.\nT..V.|
|000015c0| 17 00 c4 0d 5c 6e 48 21 | 88 82 05 00 29 65 62 87 |....\nH!|....)eb.|
|000015d0| 22 20 5b 6d 70 75 7a 2d | 73 77 69 74 63 68 2d 74 |" [mpuz-|switch-t|
|000015e0| 6f 2d 77 69 6e 64 6f 77 | 20 2d 31 20 6c 65 74 74 |o-window| -1 lett|
|000015f0| 65 72 20 31 30 20 6d 70 | 75 7a 2d 70 61 69 6e 74 |er 10 mp|uz-paint|
|00001600| 2d 64 69 67 69 74 20 6d | 70 75 7a 2d 6c 65 74 74 |-digit m|puz-lett|
|00001610| 65 72 2d 74 6f 2d 64 69 | 67 69 74 5d 20 33 20 28 |er-to-di|git] 3 (|
|00001620| 23 24 20 2e 20 35 34 37 | 35 29 5d 29 0a 23 40 35 |#$ . 547|5)]).#@5|
|00001630| 33 20 50 61 69 6e 74 20 | 61 6c 6c 20 6f 63 63 75 |3 Paint |all occu|
|00001640| 72 72 65 6e 63 65 73 20 | 6f 66 20 44 49 47 49 54 |rrences |of DIGIT|
|00001650| 20 6f 6e 20 74 68 65 20 | 70 75 7a 7a 6c 65 20 62 | on the |puzzle b|
|00001660| 6f 61 72 64 2e 1f 0a 28 | 64 65 66 61 6c 69 61 73 |oard...(|defalias|
|00001670| 20 27 6d 70 75 7a 2d 70 | 61 69 6e 74 2d 64 69 67 | 'mpuz-p|aint-dig|
|00001680| 69 74 20 23 5b 28 64 69 | 67 69 74 29 20 22 08 09 |it #[(di|git) "..|
|00001690| 48 83 5c 66 00 09 c2 5c | 5c 82 11 00 0b 09 48 c4 |H.\f...\|\.....H.|
|000016a0| 5c 5c 0d 09 48 1e 06 1e | 07 c8 1e 09 0e 06 85 44 |\\..H...|.......D|
|000016b0| 00 ca 0e 06 40 40 21 88 | cb 0e 06 40 41 21 88 0e |....@@!.|...@A!..|
|000016c0| 07 63 88 cc cd 21 88 ce | cd 21 88 0e 06 41 89 16 |.c...!..|.!...A..|
|000016d0| 06 84 20 00 c8 2b 87 22 | 20 5b 6d 70 75 7a 2d 66 |.. ..+."| [mpuz-f|
|000016e0| 6f 75 6e 64 2d 64 69 67 | 69 74 73 20 64 69 67 69 |ound-dig|its digi|
|000016f0| 74 20 34 38 20 6d 70 75 | 7a 2d 64 69 67 69 74 2d |t 48 mpu|z-digit-|
|00001700| 74 6f 2d 6c 65 74 74 65 | 72 20 36 35 20 6d 70 75 |to-lette|r 65 mpu|
|00001710| 7a 2d 62 6f 61 72 64 20 | 73 71 75 61 72 65 2d 6c |z-board |square-l|
|00001720| 20 63 68 61 72 20 6e 69 | 6c 20 62 75 66 66 65 72 | char ni|l buffer|
|00001730| 2d 72 65 61 64 2d 6f 6e | 6c 79 20 67 6f 74 6f 2d |-read-on|ly goto-|
|00001740| 6c 69 6e 65 20 6d 6f 76 | 65 2d 74 6f 2d 63 6f 6c |line mov|e-to-col|
|00001750| 75 6d 6e 20 64 65 6c 65 | 74 65 2d 63 68 61 72 20 |umn dele|te-char |
|00001760| 31 20 62 61 63 6b 77 61 | 72 64 2d 63 68 61 72 5d |1 backwa|rd-char]|
|00001770| 20 34 20 28 23 24 20 2e | 20 35 36 38 32 29 5d 29 | 4 (#$ .| 5682)])|
|00001780| 0a 23 40 33 35 20 43 6c | 65 61 72 20 66 72 6f 6d |.#@35 Cl|ear from|
|00001790| 20 70 6f 69 6e 74 20 74 | 6f 20 6e 65 78 74 20 6e | point t|o next n|
|000017a0| 65 77 6c 69 6e 65 2e 1f | 0a 28 64 65 66 61 6c 69 |ewline..|.(defali|
|000017b0| 61 73 20 27 6d 70 75 7a | 2d 64 65 6c 65 74 65 2d |as 'mpuz|-delete-|
|000017c0| 6c 69 6e 65 20 23 5b 6e | 69 6c 20 22 60 66 c0 55 |line #[n|il "`f.U|
|000017d0| 3f 85 0f 00 c1 c2 21 88 | 82 00 00 87 22 20 5b 31 |?.....!.|...." [1|
|000017e0| 30 20 64 65 6c 65 74 65 | 2d 63 68 61 72 20 31 5d |0 delete|-char 1]|
|000017f0| 20 32 20 28 23 24 20 2e | 20 36 30 32 32 29 5d 29 | 2 (#$ .| 6022)])|
|00001800| 0a 23 40 33 37 20 47 65 | 74 20 74 68 65 20 70 75 |.#@37 Ge|t the pu|
|00001810| 7a 7a 6c 65 20 62 75 66 | 66 65 72 20 69 66 20 69 |zzle buf|fer if i|
|00001820| 74 20 65 78 69 73 74 73 | 2e 1f 0a 28 64 65 66 61 |t exists|...(defa|
|00001830| 6c 69 61 73 20 27 6d 70 | 75 7a 2d 67 65 74 2d 62 |lias 'mp|uz-get-b|
|00001840| 75 66 66 65 72 20 23 5b | 6e 69 6c 20 22 c0 c1 21 |uffer #[|nil "..!|
|00001850| 87 22 20 5b 67 65 74 2d | 62 75 66 66 65 72 20 22 |." [get-|buffer "|
|00001860| 2a 4d 75 6c 74 20 50 75 | 7a 7a 6c 65 2a 22 5d 20 |*Mult Pu|zzle*"] |
|00001870| 32 20 28 23 24 20 2e 20 | 36 31 35 30 29 5d 29 0a |2 (#$ . |6150)]).|
|00001880| 23 40 35 36 20 46 69 6e | 64 20 6f 72 20 63 72 65 |#@56 Fin|d or cre|
|00001890| 61 74 65 20 74 68 65 20 | 4d 75 6c 74 2d 50 75 7a |ate the |Mult-Puz|
|000018a0| 7a 6c 65 20 62 75 66 66 | 65 72 2c 20 61 6e 64 20 |zle buff|er, and |
|000018b0| 64 69 73 70 6c 61 79 20 | 69 74 2e 1f 0a 28 64 65 |display |it...(de|
|000018c0| 66 61 6c 69 61 73 20 27 | 6d 70 75 7a 2d 73 77 69 |falias '|mpuz-swi|
|000018d0| 74 63 68 2d 74 6f 2d 77 | 69 6e 64 6f 77 20 23 5b |tch-to-w|indow #[|
|000018e0| 6e 69 6c 20 22 c0 20 89 | 19 84 5c 6e 00 c2 20 11 |nil ". .|..\n.. .|
|000018f0| c3 09 21 88 5c 66 84 15 | 00 c5 20 88 c6 20 29 87 |..!.\f..|.. .. ).|
|00001900| 22 20 5b 6d 70 75 7a 2d | 67 65 74 2d 62 75 66 66 |" [mpuz-|get-buff|
|00001910| 65 72 20 62 75 66 66 20 | 6d 70 75 7a 2d 63 72 65 |er buff |mpuz-cre|
|00001920| 61 74 65 2d 62 75 66 66 | 65 72 20 73 77 69 74 63 |ate-buff|er switc|
|00001930| 68 2d 74 6f 2d 62 75 66 | 66 65 72 20 62 75 66 66 |h-to-buf|fer buff|
|00001940| 65 72 2d 72 65 61 64 2d | 6f 6e 6c 79 20 74 6f 67 |er-read-|only tog|
|00001950| 67 6c 65 2d 72 65 61 64 | 2d 6f 6e 6c 79 20 6d 70 |gle-read|-only mp|
|00001960| 75 7a 2d 6d 6f 64 65 5d | 20 33 20 28 23 24 20 2e |uz-mode]| 3 (#$ .|
|00001970| 20 36 32 37 37 29 5d 29 | 0a 23 40 33 31 20 41 62 | 6277)])|.#@31 Ab|
|00001980| 6f 72 74 20 61 6e 79 20 | 70 75 7a 7a 6c 65 20 69 |ort any |puzzle i|
|00001990| 6e 20 70 72 6f 67 72 65 | 73 73 2e 1f 0a 28 64 65 |n progre|ss...(de|
|000019a0| 66 61 6c 69 61 73 20 27 | 6d 70 75 7a 2d 61 62 6f |falias '|mpuz-abo|
|000019b0| 72 74 2d 67 61 6d 65 20 | 23 5b 6e 69 6c 20 22 c0 |rt-game |#[nil ".|
|000019c0| c1 21 88 c2 13 c4 15 c6 | 0e 07 c2 5c 22 88 c8 20 |.!......|...\".. |
|000019d0| 89 1e 09 85 1a 00 ca 0e | 09 21 29 87 22 20 5b 6d |........|.!)." [m|
|000019e0| 65 73 73 61 67 65 20 22 | 4d 75 6c 74 20 50 75 7a |essage "|Mult Puz|
|000019f0| 7a 6c 65 20 61 62 6f 72 | 74 65 64 2e 22 20 6e 69 |zle abor|ted." ni|
|00001a00| 6c 20 6d 70 75 7a 2d 69 | 6e 2d 70 72 6f 67 72 65 |l mpuz-i|n-progre|
|00001a10| 73 73 20 30 20 6d 70 75 | 7a 2d 6e 62 2d 65 72 72 |ss 0 mpu|z-nb-err|
|00001a20| 6f 72 73 20 66 69 6c 6c | 61 72 72 61 79 20 6d 70 |ors fill|array mp|
|00001a30| 75 7a 2d 62 6f 61 72 64 | 20 6d 70 75 7a 2d 67 65 |uz-board| mpuz-ge|
|00001a40| 74 2d 62 75 66 66 65 72 | 20 62 75 66 66 20 6b 69 |t-buffer| buff ki|
|00001a50| 6c 6c 2d 62 75 66 66 65 | 72 5d 20 34 20 28 23 24 |ll-buffe|r] 4 (#$|
|00001a60| 20 2e 20 36 35 32 36 29 | 5d 29 0a 23 40 32 31 20 | . 6526)|]).#@21 |
|00001a70| 53 74 61 72 74 20 61 20 | 6e 65 77 20 70 75 7a 7a |Start a |new puzz|
|00001a80| 6c 65 2e 1f 0a 28 64 65 | 66 61 6c 69 61 73 20 27 |le...(de|falias '|
|00001a90| 6d 70 75 7a 2d 73 74 61 | 72 74 2d 6e 65 77 2d 67 |mpuz-sta|rt-new-g|
|00001aa0| 61 6d 65 20 23 5b 6e 69 | 6c 20 22 c0 c1 21 88 c2 |ame #[ni|l "..!..|
|00001ab0| 13 c4 15 c6 0e 07 c8 5c | 22 88 c9 20 88 ca 20 88 |.......\|".. .. .|
|00001ac0| cb 20 88 cc 20 88 cd 20 | 87 22 20 5b 6d 65 73 73 |. .. .. |." [mess|
|00001ad0| 61 67 65 20 22 48 65 72 | 65 20 77 65 20 67 6f 2e |age "Her|e we go.|
|00001ae0| 2e 2e 22 20 30 20 6d 70 | 75 7a 2d 6e 62 2d 65 72 |.." 0 mp|uz-nb-er|
|00001af0| 72 6f 72 73 20 74 20 6d | 70 75 7a 2d 69 6e 2d 70 |rors t m|puz-in-p|
|00001b00| 72 6f 67 72 65 73 73 20 | 66 69 6c 6c 61 72 72 61 |rogress |fillarra|
|00001b10| 79 20 6d 70 75 7a 2d 66 | 6f 75 6e 64 2d 64 69 67 |y mpuz-f|ound-dig|
|00001b20| 69 74 73 20 6e 69 6c 20 | 6d 70 75 7a 2d 72 61 6e |its nil |mpuz-ran|
|00001b30| 64 6f 6d 2d 70 75 7a 7a | 6c 65 20 6d 70 75 7a 2d |dom-puzz|le mpuz-|
|00001b40| 73 77 69 74 63 68 2d 74 | 6f 2d 77 69 6e 64 6f 77 |switch-t|o-window|
|00001b50| 20 6d 70 75 7a 2d 70 61 | 69 6e 74 2d 62 6f 61 72 | mpuz-pa|int-boar|
|00001b60| 64 20 6d 70 75 7a 2d 70 | 61 69 6e 74 2d 65 72 72 |d mpuz-p|aint-err|
|00001b70| 6f 72 73 20 6d 70 75 7a | 2d 61 73 6b 2d 66 6f 72 |ors mpuz|-ask-for|
|00001b80| 2d 74 72 79 5d 20 33 20 | 28 23 24 20 2e 20 36 37 |-try] 3 |(#$ . 67|
|00001b90| 36 38 29 5d 29 0a 23 40 | 34 32 20 41 73 6b 20 69 |68)]).#@|42 Ask i|
|00001ba0| 66 20 75 73 65 72 20 77 | 61 6e 74 73 20 74 6f 20 |f user w|ants to |
|00001bb0| 73 74 61 72 74 20 61 20 | 6e 65 77 20 70 75 7a 7a |start a |new puzz|
|00001bc0| 6c 65 2e 1f 0a 28 64 65 | 66 61 6c 69 61 73 20 27 |le...(de|falias '|
|00001bd0| 6d 70 75 7a 2d 6f 66 66 | 65 72 2d 6e 65 77 2d 67 |mpuz-off|er-new-g|
|00001be0| 61 6d 65 20 23 5b 6e 69 | 6c 20 22 c0 c1 21 83 09 |ame #[ni|l "..!..|
|00001bf0| 00 c2 20 87 c3 c4 21 87 | 22 20 5b 79 2d 6f 72 2d |.. ...!.|" [y-or-|
|00001c00| 6e 2d 70 20 22 53 74 61 | 72 74 20 61 20 6e 65 77 |n-p "Sta|rt a new|
|00001c10| 20 67 61 6d 65 20 22 20 | 6d 70 75 7a 2d 73 74 61 | game " |mpuz-sta|
|00001c20| 72 74 2d 6e 65 77 2d 67 | 61 6d 65 20 6d 65 73 73 |rt-new-g|ame mess|
|00001c30| 61 67 65 20 22 4f 4b 2e | 20 49 20 77 6f 6e 27 74 |age "OK.| I won't|
|00001c40| 2e 22 5d 20 32 20 28 23 | 24 20 2e 20 37 30 36 37 |."] 2 (#|$ . 7067|
|00001c50| 29 5d 29 0a 23 40 33 39 | 20 4d 75 6c 74 69 70 6c |)]).#@39| Multipl|
|00001c60| 69 63 61 74 69 6f 6e 20 | 70 75 7a 7a 6c 65 20 77 |ication |puzzle w|
|00001c70| 69 74 68 20 47 4e 55 20 | 45 6d 61 63 73 2e 1f 0a |ith GNU |Emacs...|
|00001c80| 28 64 65 66 61 6c 69 61 | 73 20 27 6d 70 75 7a 20 |(defalia|s 'mpuz |
|00001c90| 23 5b 6e 69 6c 20 22 c0 | 20 88 09 83 5c 6e 00 c2 |#[nil ".| ...\n..|
|00001ca0| 20 87 c3 20 87 22 20 5b | 6d 70 75 7a 2d 73 77 69 | .. ." [|mpuz-swi|
|00001cb0| 74 63 68 2d 74 6f 2d 77 | 69 6e 64 6f 77 20 6d 70 |tch-to-w|indow mp|
|00001cc0| 75 7a 2d 69 6e 2d 70 72 | 6f 67 72 65 73 73 20 6d |uz-in-pr|ogress m|
|00001cd0| 70 75 7a 2d 6f 66 66 65 | 72 2d 61 62 6f 72 74 20 |puz-offe|r-abort |
|00001ce0| 6d 70 75 7a 2d 73 74 61 | 72 74 2d 6e 65 77 2d 67 |mpuz-sta|rt-new-g|
|00001cf0| 61 6d 65 5d 20 31 20 28 | 23 24 20 2e 20 37 32 35 |ame] 1 (|#$ . 725|
|00001d00| 37 29 20 6e 69 6c 5d 29 | 0a 23 40 34 34 20 41 73 |7) nil])|.#@44 As|
|00001d10| 6b 20 69 66 20 75 73 65 | 72 20 77 61 6e 74 73 20 |k if use|r wants |
|00001d20| 74 6f 20 61 62 6f 72 74 | 20 63 75 72 72 65 6e 74 |to abort| current|
|00001d30| 20 70 75 7a 7a 6c 65 2e | 1f 0a 28 64 65 66 61 6c | puzzle.|..(defal|
|00001d40| 69 61 73 20 27 6d 70 75 | 7a 2d 6f 66 66 65 72 2d |ias 'mpu|z-offer-|
|00001d50| 61 62 6f 72 74 20 23 5b | 6e 69 6c 20 22 c0 c1 21 |abort #[|nil "..!|
|00001d60| 83 09 00 c2 20 87 c3 20 | 87 22 20 5b 79 2d 6f 72 |.... .. |." [y-or|
|00001d70| 2d 6e 2d 70 20 22 41 62 | 6f 72 74 20 67 61 6d 65 |-n-p "Ab|ort game|
|00001d80| 20 22 20 6d 70 75 7a 2d | 61 62 6f 72 74 2d 67 61 | " mpuz-|abort-ga|
|00001d90| 6d 65 20 6d 70 75 7a 2d | 61 73 6b 2d 66 6f 72 2d |me mpuz-|ask-for-|
|00001da0| 74 72 79 5d 20 32 20 28 | 23 24 20 2e 20 37 34 33 |try] 2 (|#$ . 743|
|00001db0| 38 29 20 6e 69 6c 5d 29 | 0a 23 40 33 34 20 41 73 |8) nil])|.#@34 As|
|00001dc0| 6b 20 66 6f 72 20 75 73 | 65 72 20 70 72 6f 70 6f |k for us|er propo|
|00001dd0| 73 61 6c 20 69 6e 20 70 | 75 7a 7a 6c 65 2e 1f 0a |sal in p|uzzle...|
|00001de0| 28 64 65 66 61 6c 69 61 | 73 20 27 6d 70 75 7a 2d |(defalia|s 'mpuz-|
|00001df0| 61 73 6b 2d 66 6f 72 2d | 74 72 79 20 23 5b 6e 69 |ask-for-|try #[ni|
|00001e00| 6c 20 22 c0 c1 21 87 22 | 20 5b 6d 65 73 73 61 67 |l "..!."| [messag|
|00001e10| 65 20 22 59 6f 75 72 20 | 74 72 79 20 3f 22 5d 20 |e "Your |try ?"] |
|00001e20| 32 20 28 23 24 20 2e 20 | 37 36 31 34 29 5d 29 0a |2 (#$ . |7614)]).|
|00001e30| 23 40 34 31 20 50 72 6f | 70 6f 73 65 20 61 20 64 |#@41 Pro|pose a d|
|00001e40| 69 67 69 74 20 66 6f 72 | 20 61 20 6c 65 74 74 65 |igit for| a lette|
|00001e50| 72 20 69 6e 20 70 75 7a | 7a 6c 65 2e 1f 0a 28 64 |r in puz|zle...(d|
|00001e60| 65 66 61 6c 69 61 73 20 | 27 6d 70 75 7a 2d 74 72 |efalias |'mpuz-tr|
|00001e70| 79 2d 6c 65 74 74 65 72 | 20 23 5b 6e 69 6c 20 22 |y-letter| #[nil "|
|00001e80| 08 83 62 00 c1 89 89 89 | 1a 1b 1c 1d 0e 06 96 15 |..b.....|........|
|00001e90| 0e 07 0d c8 5a 48 14 0e | 09 5c 66 48 83 25 00 c2 |....ZH..|.\fH.%..|
|00001ea0| ca 0d 5c 22 82 60 00 0e | 0b 5c 66 48 84 33 00 c2 |..\".`..|.\fH.3..|
|00001eb0| cc 0d 5c 22 82 60 00 c2 | cd 0d 5c 22 88 ce 20 89 |..\".`..|..\".. .|
|00001ec0| 13 cf 3d 83 44 00 ce 20 | 13 c2 d0 0d 0b 23 88 0b |..=.D.. |.....#..|
|00001ed0| d1 56 84 56 00 0b d2 57 | 83 5c 5c 00 d3 d4 21 82 |.V.V...W|.\\...!.|
|00001ee0| 60 00 d5 0d 0b 5c 22 2c | 87 d6 20 87 22 20 5b 6d |`....\",|.. ." [m|
|00001ef0| 70 75 7a 2d 69 6e 2d 70 | 72 6f 67 72 65 73 73 20 |puz-in-p|rogress |
|00001f00| 6e 69 6c 20 6d 65 73 73 | 61 67 65 20 64 69 67 69 |nil mess|age digi|
|00001f10| 74 2d 63 68 61 72 20 64 | 69 67 69 74 20 6c 65 74 |t-char d|igit let|
|00001f20| 74 65 72 2d 63 68 61 72 | 20 6c 61 73 74 2d 63 6f |ter-char| last-co|
|00001f30| 6d 6d 61 6e 64 2d 63 68 | 61 72 20 6d 70 75 7a 2d |mmand-ch|ar mpuz-|
|00001f40| 6c 65 74 74 65 72 2d 74 | 6f 2d 64 69 67 69 74 20 |letter-t|o-digit |
|00001f50| 36 35 20 6d 70 75 7a 2d | 66 6f 75 6e 64 2d 64 69 |65 mpuz-|found-di|
|00001f60| 67 69 74 73 20 22 25 63 | 20 61 6c 72 65 61 64 79 |gits "%c| already|
|00001f70| 20 73 6f 6c 76 65 64 2e | 22 20 6d 70 75 7a 2d 62 | solved.|" mpuz-b|
|00001f80| 6f 61 72 64 20 22 25 63 | 20 64 6f 65 73 20 6e 6f |oard "%c| does no|
|00001f90| 74 20 61 70 70 65 61 72 | 2e 22 20 22 25 63 20 3d |t appear|." "%c =|
|00001fa0| 20 22 20 72 65 61 64 2d | 63 68 61 72 20 36 31 20 | " read-|char 61 |
|00001fb0| 22 25 63 20 3d 20 25 63 | 22 20 35 37 20 34 38 20 |"%c = %c|" 57 48 |
|00001fc0| 64 69 6e 67 20 74 20 6d | 70 75 7a 2d 74 72 79 2d |ding t m|puz-try-|
|00001fd0| 70 72 6f 70 6f 73 61 6c | 20 6d 70 75 7a 2d 6f 66 |proposal| mpuz-of|
|00001fe0| 66 65 72 2d 6e 65 77 2d | 67 61 6d 65 5d 20 35 20 |fer-new-|game] 5 |
|00001ff0| 28 23 24 20 2e 20 37 37 | 33 33 29 20 6e 69 6c 5d |(#$ . 77|33) nil]|
|00002000| 29 0a 23 40 34 35 20 50 | 72 6f 70 6f 73 65 20 4c |).#@45 P|ropose L|
|00002010| 45 54 54 45 52 2d 43 48 | 41 52 20 61 73 20 63 6f |ETTER-CH|AR as co|
|00002020| 64 65 20 66 6f 72 20 44 | 49 47 49 54 2d 43 48 41 |de for D|IGIT-CHA|
|00002030| 52 2e 1f 0a 28 64 65 66 | 61 6c 69 61 73 20 27 6d |R...(def|alias 'm|
|00002040| 70 75 7a 2d 74 72 79 2d | 70 72 6f 70 6f 73 61 6c |puz-try-|proposal|
|00002050| 20 23 5b 28 6c 65 74 74 | 65 72 2d 63 68 61 72 20 | #[(lett|er-char |
|00002060| 64 69 67 69 74 2d 63 68 | 61 72 29 20 22 08 c1 5a |digit-ch|ar) "..Z|
|00002070| 1a 0b c4 5a 1d 0e 06 5c | 6e 48 1e 07 0e 08 0e 07 |...Z...\|nH......|
|00002080| 48 83 1c 00 c9 ca 21 82 | 42 00 0d 0e 07 55 83 32 |H.....!.|B....U.2|
|00002090| 00 c9 cb 08 0b 23 88 cc | 20 88 cd 0d 21 82 42 00 |.....#..| ...!.B.|
|000020a0| c9 ce 08 0b 23 88 cc 20 | 88 0e 0f 54 16 0f d0 20 |....#.. |...T... |
|000020b0| 2b 87 22 20 5b 6c 65 74 | 74 65 72 2d 63 68 61 72 |+." [let|ter-char|
|000020c0| 20 36 35 20 6c 65 74 74 | 65 72 20 64 69 67 69 74 | 65 lett|er digit|
|000020d0| 2d 63 68 61 72 20 34 38 | 20 64 69 67 69 74 20 6d |-char 48| digit m|
|000020e0| 70 75 7a 2d 6c 65 74 74 | 65 72 2d 74 6f 2d 64 69 |puz-lett|er-to-di|
|000020f0| 67 69 74 20 63 6f 72 72 | 65 63 74 2d 64 69 67 69 |git corr|ect-digi|
|00002100| 74 20 6d 70 75 7a 2d 66 | 6f 75 6e 64 2d 64 69 67 |t mpuz-f|ound-dig|
|00002110| 69 74 73 20 6d 65 73 73 | 61 67 65 20 22 25 63 20 |its mess|age "%c |
|00002120| 68 61 73 20 61 6c 72 65 | 61 64 79 20 62 65 65 6e |has alre|ady been|
|00002130| 20 66 6f 75 6e 64 2e 22 | 20 22 25 63 20 3d 20 25 | found."| "%c = %|
|00002140| 63 20 63 6f 72 72 65 63 | 74 20 21 22 20 6d 70 75 |c correc|t !" mpu|
|00002150| 7a 2d 64 69 6e 67 20 6d | 70 75 7a 2d 63 6f 72 72 |z-ding m|puz-corr|
|00002160| 65 63 74 2d 67 75 65 73 | 73 20 22 25 63 20 3d 20 |ect-gues|s "%c = |
|00002170| 25 63 20 69 6e 63 6f 72 | 72 65 63 74 20 21 22 20 |%c incor|rect !" |
|00002180| 6d 70 75 7a 2d 6e 62 2d | 65 72 72 6f 72 73 20 6d |mpuz-nb-|errors m|
|00002190| 70 75 7a 2d 70 61 69 6e | 74 2d 65 72 72 6f 72 73 |puz-pain|t-errors|
|000021a0| 5d 20 34 20 28 23 24 20 | 2e 20 38 31 39 39 29 5d |] 4 (#$ |. 8199)]|
|000021b0| 29 0a 23 40 33 35 20 48 | 61 6e 64 6c 65 20 63 6f |).#@35 H|andle co|
|000021c0| 72 72 65 63 74 20 67 75 | 65 73 73 69 6e 67 20 6f |rrect gu|essing o|
|000021d0| 66 20 44 49 47 49 54 2e | 1f 0a 28 64 65 66 61 6c |f DIGIT.|..(defal|
|000021e0| 69 61 73 20 27 6d 70 75 | 7a 2d 63 6f 72 72 65 63 |ias 'mpu|z-correc|
|000021f0| 74 2d 67 75 65 73 73 20 | 23 5b 28 64 69 67 69 74 |t-guess |#[(digit|
|00002200| 29 20 22 08 09 c2 49 88 | c3 09 21 88 c4 20 85 10 |) "...I.|..!.. ..|
|00002210| 00 c5 20 87 22 20 5b 6d | 70 75 7a 2d 66 6f 75 6e |.. ." [m|puz-foun|
|00002220| 64 2d 64 69 67 69 74 73 | 20 64 69 67 69 74 20 74 |d-digits| digit t|
|00002230| 20 6d 70 75 7a 2d 70 61 | 69 6e 74 2d 64 69 67 69 | mpuz-pa|int-digi|
|00002240| 74 20 6d 70 75 7a 2d 63 | 68 65 63 6b 2d 61 6c 6c |t mpuz-c|heck-all|
|00002250| 2d 73 6f 6c 76 65 64 20 | 6d 70 75 7a 2d 63 6c 6f |-solved |mpuz-clo|
|00002260| 73 65 2d 67 61 6d 65 5d | 20 33 20 28 23 24 20 2e |se-game]| 3 (#$ .|
|00002270| 20 38 36 33 31 29 5d 29 | 0a 23 40 34 34 20 48 6f | 8631)])|.#@44 Ho|
|00002280| 75 73 65 63 6c 65 61 6e | 69 6e 67 20 77 68 65 6e |useclean|ing when|
|00002290| 20 70 75 7a 7a 6c 65 20 | 68 61 73 20 62 65 65 6e | puzzle |has been|
|000022a0| 20 73 6f 6c 76 65 64 2e | 1f 0a 28 64 65 66 61 6c | solved.|..(defal|
|000022b0| 69 61 73 20 27 6d 70 75 | 7a 2d 63 6c 6f 73 65 2d |ias 'mpu|z-close-|
|000022c0| 67 61 6d 65 20 23 5b 6e | 69 6c 20 22 c0 11 5c 6e |game #[n|il "..\n|
|000022d0| 0b 5c 5c 12 5c 66 54 14 | c5 20 88 c6 20 1e 07 c7 |.\\.\fT.|. .. ...|
|000022e0| 0e 07 21 88 c8 c9 21 88 | ca 0e 07 cb 50 21 83 27 |..!...!.|....P!.'|
|000022f0| 00 cc 20 82 2a 00 c7 cd | 21 29 87 22 20 5b 6e 69 |.. .*...|!)." [ni|
|00002300| 6c 20 6d 70 75 7a 2d 69 | 6e 2d 70 72 6f 67 72 65 |l mpuz-i|n-progre|
|00002310| 73 73 20 6d 70 75 7a 2d | 6e 62 2d 63 75 6d 75 6c |ss mpuz-|nb-cumul|
|00002320| 61 74 65 64 2d 65 72 72 | 6f 72 73 20 6d 70 75 7a |ated-err|ors mpuz|
|00002330| 2d 6e 62 2d 65 72 72 6f | 72 73 20 6d 70 75 7a 2d |-nb-erro|rs mpuz-|
|00002340| 6e 62 2d 63 6f 6d 70 6c | 65 74 65 64 2d 67 61 6d |nb-compl|eted-gam|
|00002350| 65 73 20 6d 70 75 7a 2d | 70 61 69 6e 74 2d 73 74 |es mpuz-|paint-st|
|00002360| 61 74 69 73 74 69 63 73 | 20 6d 70 75 7a 2d 63 6f |atistics| mpuz-co|
|00002370| 6e 67 72 61 74 75 6c 61 | 74 65 20 6d 65 73 73 61 |ngratula|te messa|
|00002380| 67 65 20 73 69 74 2d 66 | 6f 72 20 34 20 79 2d 6f |ge sit-f|or 4 y-o|
|00002390| 72 2d 6e 2d 70 20 22 20 | 20 53 74 61 72 74 20 61 |r-n-p " | Start a|
|000023a0| 20 6e 65 77 20 67 61 6d | 65 20 22 20 6d 70 75 7a | new gam|e " mpuz|
|000023b0| 2d 73 74 61 72 74 2d 6e | 65 77 2d 67 61 6d 65 20 |-start-n|ew-game |
|000023c0| 22 47 6f 6f 64 20 42 79 | 65 20 21 22 5d 20 33 20 |"Good By|e !"] 3 |
|000023d0| 28 23 24 20 2e 20 38 38 | 33 30 29 5d 29 0a 23 40 |(#$ . 88|30)]).#@|
|000023e0| 35 35 20 42 75 69 6c 64 | 20 61 20 63 6f 6e 67 72 |55 Build| a congr|
|000023f0| 61 74 75 6c 61 74 69 6f | 6e 20 6d 65 73 73 61 67 |atulatio|n messag|
|00002400| 65 20 77 68 65 6e 20 70 | 75 7a 7a 6c 65 20 69 73 |e when p|uzzle is|
|00002410| 20 73 6f 6c 76 65 64 2e | 1f 0a 28 64 65 66 61 6c | solved.|..(defal|
|00002420| 69 61 73 20 27 6d 70 75 | 7a 2d 63 6f 6e 67 72 61 |ias 'mpu|z-congra|
|00002430| 74 75 6c 61 74 65 20 23 | 5b 6e 69 6c 20 22 c0 c1 |tulate #|[nil "..|
|00002440| 5c 6e 89 c3 55 83 0d 00 | c4 82 5c 5c 00 5c 6e c5 |\n..U...|..\\.\n.|
|00002450| 55 83 17 00 c6 82 5c 5c | 00 5c 6e c7 55 83 21 00 |U.....\\|.\n.U.!.|
|00002460| c8 82 5c 5c 00 5c 6e c9 | 55 83 2b 00 ca 82 5c 5c |..\\.\n.|U.+...\\|
|00002470| 00 5c 6e cb 55 83 35 00 | cc 82 5c 5c 00 5c 6e cd |.\n.U.5.|..\\.\n.|
|00002480| 59 83 45 00 5c 6e ce 57 | 83 45 00 cf 82 5c 5c 00 |Y.E.\n.W|.E...\\.|
|00002490| 5c 6e ce 59 83 55 00 5c | 6e d0 57 83 55 00 d1 82 |\n.Y.U.\|n.W.U...|
|000024a0| 5c 5c 00 5c 6e d0 59 85 | 5c 5c 00 d2 23 87 22 20 |\\.\n.Y.|\\..#." |
|000024b0| 5b 66 6f 72 6d 61 74 20 | 22 50 75 7a 7a 6c 65 20 |[format |"Puzzle |
|000024c0| 73 6f 6c 76 65 64 20 77 | 69 74 68 20 25 64 20 65 |solved w|ith %d e|
|000024d0| 72 72 6f 72 73 2e 20 25 | 73 22 20 6d 70 75 7a 2d |rrors. %|s" mpuz-|
|000024e0| 6e 62 2d 65 72 72 6f 72 | 73 20 30 20 22 54 68 61 |nb-error|s 0 "Tha|
|000024f0| 74 27 73 20 70 65 72 66 | 65 63 74 20 21 22 20 31 |t's perf|ect !" 1|
|00002500| 20 22 54 68 61 74 27 73 | 20 76 65 72 79 20 67 6f | "That's| very go|
|00002510| 6f 64 20 21 22 20 32 20 | 22 54 68 61 74 27 73 20 |od !" 2 |"That's |
|00002520| 67 6f 6f 64 2e 22 20 33 | 20 22 54 68 61 74 27 73 |good." 3| "That's|
|00002530| 20 6e 6f 74 20 62 61 64 | 2e 22 20 34 20 22 54 68 | not bad|." 4 "Th|
|00002540| 61 74 27 73 20 6e 6f 74 | 20 74 6f 6f 20 62 61 64 |at's not| too bad|
|00002550| 2e 2e 2e 22 20 35 20 31 | 30 20 22 54 68 61 74 27 |..." 5 1|0 "That'|
|00002560| 73 20 62 61 64 20 21 22 | 20 31 35 20 22 54 68 61 |s bad !"| 15 "Tha|
|00002570| 74 27 73 20 61 77 66 75 | 6c 2e 22 20 22 54 68 61 |t's awfu|l." "Tha|
|00002580| 74 27 73 20 6e 6f 74 20 | 73 65 72 69 6f 75 73 2e |t's not |serious.|
|00002590| 22 5d 20 35 20 28 23 24 | 20 2e 20 39 31 38 37 29 |"] 5 (#$| . 9187)|
|000025a0| 5d 29 0a 23 40 34 32 20 | 44 69 73 70 6c 61 79 20 |]).#@42 |Display |
|000025b0| 73 6f 6c 75 74 69 6f 6e | 20 66 6f 72 20 64 65 62 |solution| for deb|
|000025c0| 75 67 67 69 6e 67 20 70 | 75 72 70 6f 73 65 73 2e |ugging p|urposes.|
|000025d0| 1f 0a 28 64 65 66 61 6c | 69 61 73 20 27 6d 70 75 |..(defal|ias 'mpu|
|000025e0| 7a 2d 73 68 6f 77 2d 73 | 6f 6c 75 74 69 6f 6e 20 |z-show-s|olution |
|000025f0| 23 5b 6e 69 6c 20 22 c0 | 20 88 c1 89 1a 1b c4 13 |#[nil ".| .......|
|00002600| c5 0b 54 89 13 56 83 20 | 00 0e 06 0b 48 84 09 00 |..T..V. |....H...|
|00002610| 0b 5c 6e 42 12 82 09 00 | c7 c8 5c 6e 5c 22 2a 87 |.\nB....|..\n\"*.|
|00002620| 22 20 5b 6d 70 75 7a 2d | 73 77 69 74 63 68 2d 74 |" [mpuz-|switch-t|
|00002630| 6f 2d 77 69 6e 64 6f 77 | 20 6e 69 6c 20 6c 69 73 |o-window| nil lis|
|00002640| 74 20 64 69 67 69 74 20 | 2d 31 20 31 30 20 6d 70 |t digit |-1 10 mp|
|00002650| 75 7a 2d 66 6f 75 6e 64 | 2d 64 69 67 69 74 73 20 |uz-found|-digits |
|00002660| 6d 61 70 63 61 72 20 6d | 70 75 7a 2d 63 6f 72 72 |mapcar m|puz-corr|
|00002670| 65 63 74 2d 67 75 65 73 | 73 5d 20 33 20 28 23 24 |ect-gues|s] 3 (#$|
|00002680| 20 2e 20 39 36 34 30 29 | 20 6e 69 6c 5d 29 0a | . 9640)| nil]). |
+--------+-------------------------+-------------------------+--------+--------+